package com.iflytek.voicecloud.webapi.demo.util;

import javax.sound.sampled.*;
public class test1 {
    public static void main(String[] args) {
        // 定义音频格式
        AudioFormat format = new AudioFormat(16000, 16, 1, true, true);

        // 设定数据行信息
        DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);

        if (!AudioSystem.isLineSupported(info)) {
            System.out.println("麦克风不支持该音频格式");
            return;
        }

        TargetDataLine microphone = null;
        try {
            // 打开麦克风数据行
            microphone = (TargetDataLine) AudioSystem.getLine(info);
            microphone.open(format);

            System.out.println("开始捕获麦克风输入...");
            microphone.start();

            // 创建一个缓冲区存储音频数据
            byte[] buffer = new byte[1024];
            int bytesRead = 0;

            // 开始录制音频数据
            while (bytesRead != -1) {
                bytesRead = microphone.read(buffer, 0, buffer.length);
                // 这里你可以将 buffer 中的数据处理或者保存为文件
                System.out.println("读取了 " + bytesRead + " 字节的数据");
            }
        } catch (LineUnavailableException e) {
            e.printStackTrace();
        } finally {
            // 停止并关闭麦克风
            if (microphone != null) {
                microphone.stop();
                microphone.close();
                System.out.println("麦克风关闭");
            }
        }
    }
}
